iT邦幫忙

DAY 24
8

SQL Server 無敵手冊系列 第 24

SQL Server 無敵手冊第廿四篇-淺談SQL Server的透明資料加密 (TDE)

  • 分享至 

  • xImage
  •  

身為一個優秀的DBA,資料庫的資訊安全是責無旁貸的責任,所以這篇我們就跟大家介紹SQL Server 2008新增的功能透明資料加密 (TDE)。
對於資料庫的安全性,最常被遺漏的部分,就是資料庫的實體檔案或是備份檔案,在沒有加密的情況下,只要取得資料庫實體檔案或是備份檔,將資料庫附加(SQL Server 無敵手冊第六篇)或還原(SQL Server 無敵手冊第十八篇),就可以取得資料庫中的重要機密資料。
SQL Server提供了透明資料加密(Transparent Data Encryption:TDE)的方法,運用此方法,您無須修改應用程式,也可以加密保護整個資料庫,透明資料加密會在進行資料檔和記錄檔的I/O時執行即時的加密和解密,它所保護的加密單位是使用者的資料庫。在資料庫層級它會使用資料庫加密金鑰 (DEK)對資料檔跟交易紀錄檔進行寫入加密跟讀出解密的動作,而金鑰會被儲存於資料庫開機記錄中,以便在復原期間可供使用。所謂的DEK(Database Encryption Key) 是資料庫加密金鑰。透過這樣的方式TDE就可以保護資料檔和記錄檔。它可讓軟體開發人員選擇使用 AES 和 3DES 加密演算法加密資料,而不需要變更現有的應用程式。

當您啟用 TDE 時,建議您應該立即備份憑證以及與此憑證有關的私密金鑰。您必須同時擁有此憑證和私密金鑰的備份您才可以在另一部伺服器上還原或附加資料庫,否則將無法開啟資料庫。即使資料庫上不再啟用 TDE,還是應該保留加密憑證或非對稱金鑰。即使資料庫並未加密,資料庫加密金鑰還是可能會保留在資料庫內,而且可能必須針對某些作業來存取。

雖然在進行資料透明加密的時候,會增加CPU的loading,不過對於實際使用的效能上衝擊不大,也不會增加資料庫的使用空間,當然執行資料庫備份時無須另外處理,透明資料加密的運作方式如下所示:
1.當存放在記憶體中的資料頁面(Page)要進行磁碟寫入的動作時,先進行加密後才寫入磁碟。
2.在執行加密作業完成後,會使用Checksum(總和檢查碼)進行分頁保護的機制。
3.先使用總和檢查碼確認分頁資料沒有受損後,才進行資料解密。
4.資料解密之後才載入到記憶體中。
架構圖如下:

特別要注意的是,如果您要使用前幾篇中所提到的資料庫鏡像,您不需將[憑證]複製到主體伺服器與鏡像伺服器上。如果使用紀錄傳送一樣需要將[憑證]複製到主要伺服器與每一台次要伺服器中。
如果任何其他資料庫是使用 TDE 進行加密,則SQL Server 執行個體上的 tempdb 系統資料庫也將會加密。這可能會對於相同 SQL Server 執行個體上未加密的資料庫造成效能上的影響。
另外如果您使用了SQL Server 2008 的新功能 FILESTREAM DATA,就算您已經啟用了TDE, FILESTREAM DATA還是不會被加密。
現在相信您已經了解了SQL Server的透明資料加密。


上一篇
SQL Server 無敵手冊第廿三篇-SQL Server的資料庫鏡像(Database Mirroring)管理
下一篇
SQL Server 無敵手冊第廿五篇-實作SQL Server的透明資料加密(TDE)
系列文
SQL Server 無敵手冊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
funkent
iT邦高手 1 級 ‧ 2009-11-04 10:07:36

補上SQL Server 無敵手冊全系列的連結
SQL Server 無敵手冊

0
keven0129
iT邦新手 5 級 ‧ 2020-12-03 10:21:37

請問可以做完SQL Mirror再做TDE嗎 ?

我要留言

立即登入留言